
#include "TipoPrincesa.h"

TipoPrincesa* GestionTipoPrincesa::tipoPrincesa;

void GestionTipoPrincesa::Inicializar(TipoPrincesa_y tipoPrincesa) {
	
	GestionTipoPrincesa::tipoPrincesa = new TipoPrincesa(tipoPrincesa);
}

void GestionTipoPrincesa::AsignarTipoPrincesa(Princesa* princesa) {
	
	tipoPrincesa->AsignarAPrincesa(princesa);
}

TipoPrincesa::TipoPrincesa(TipoPrincesa_y tipoPrincesa) {
	
	vector<Animacion_y> animaciones = tipoPrincesa.animaciones;	
	vector<string> descripcionParticulares = EstadoPrincesa::descripcionAccionesParticulares;
	
	vector<infoAccion_t> v_accionesParticulares = AsignarParticulares(tipoPrincesa.ancho, tipoPrincesa.alto, descripcionParticulares, &animaciones);
	
	for (unsigned int i=0; i<descripcionParticulares.size(); i++) {
		accionesParticulares.push_back(v_accionesParticulares[i]);
	}
	
	Inicializar(tipoPrincesa.ancho, tipoPrincesa.alto, animaciones, ESPEJADA);
}

void TipoPrincesa::AsignarAPrincesa(Princesa* princesa) {
	
	AsignarAObjeto(princesa);
	princesa->setPosicion(princesa->getX(), princesa->getY() - princesa->getAlto());
	
	for (unsigned int k=0; k<accionesParticulares.size(); k++) {
		princesa->addAccionParticular(accionesParticulares[k].idImagen, accionesParticulares[k].cuadros);
	}
}